package main

import "fmt"

type integer int

func (i integer) print() {
	fmt.Println("i =", i)
}

//编写一个方法可以改变i的值
func (i *integer) change() {
	*i += 1
}

type Student struct {
	Name string
	Age  int
}

func (stu *Student) String() string {
	str := fmt.Sprintf("Name=[%v] Age=[%v]\n", stu.Name, stu.Age)
	return str
}

func main() {
	// var i integer = 10
	// i.print()
	// (&i).change()
	// fmt.Println("i =", i)

	stu := Student{
		Name: "tom",
		Age:  20,
	}
	//如果实现了 *Student类型的 String方法就会自动调用
	fmt.Println(&stu)
}
